package com.esgov.chatbot.entity.chatbot.chat;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author Eric Lao
 * @since 2023/3/22 16:14
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("Chat消息的列表")
public class Message {

    @ApiModelProperty("本条消息的类型：Text=⽂本，" +
            "Recommend=知识库知识推荐，" +
            "Knowledge=知识库知识直出，" +
            "ChatGlm=通用大模型回复，" +
            "ContextChat=上下文对话，" +
            "Debug=调试信息，" +
            "ZkBot=智科机器人。详见ChatMessageTypeEnum")
    private String type;

    @ApiModelProperty("当Type为Text时，返回该对象")
    private Text text;

    @ApiModelProperty("当Type为Knowledge时，返回该对象")
    private MessageKnowledge knowledge;

    @ApiModelProperty("当Type为Recommend时，返回该list")
    private List<Recommend> recommends;

    @ApiModelProperty("当Type为ChatGlm时，返回该对象")
    private ChatGlmAnswer chatGlmAnswer;

    @ApiModelProperty("当type为ContextChat时，返回该对象")
    private ContextChatAnswer contextChatAnswer;
}
